Skip to content

Conversation

@oeggert
Copy link
Collaborator

@oeggert oeggert commented Aug 20, 2025

Updated MPTTokenIssuanceCreate and MPTokenIssuanceSet transaction docs to include DomainID field. Also added additional error codes.

Documents changes to MPT that are gated by Single Asset Vaults: XRPLF/rippled#5509

Copy link
Collaborator

@mDuo13 mDuo13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be clear, this is set to go into rippled version 3.0.0, not version 2.6.0 which is the next planned release?

@Bronek
Copy link

Bronek commented Aug 21, 2025

To be clear, this is set to go into rippled version 3.0.0, not version 2.6.0 which is the next planned release?

Yes. Although the changes are in release 2.6.0, they are amendment gated by SingleAssetVault which, in release 2.6.0 is not supported hence cannot be voted (and enabled). This means the changes will not be enabled until after 3.0.0 release (which will flip the Supported flag) and obviously, after the amendment has been voted.

@oeggert oeggert requested a review from mDuo13 November 4, 2025 20:12
| `tecNO_DELEGATE_PERMISSION` | You are attempting to use a delegate account with insufficient permissions to submit this transaction. |
| `tecNO_DST` | The account specified in the `Holder` field doesn't exist. |
| `tecNO_PERMISSION` | - The `lsfMPTCanLock` flag isn't enabled, but you are attempting to lock or unlock an MPT.<br>- The `SingleAssetVault` amendment is disabled and you're trying to modify a `DomainID` field. |
| `temMALFORMED` | - You specified a `DomainID` and `Holder` value--only one can be set in a single transaction.<br>- You specified the same account for both `Acount` and `Holder`.<br>- The transaction isn't changing anything; it must either update a flag or modify the `DomainID`. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

temMALFORMED is a code that can occur for any transaction type.

Suggested change
| `temMALFORMED` | - You specified a `DomainID` and `Holder` value--only one can be set in a single transaction.<br>- You specified the same account for both `Acount` and `Holder`.<br>- The transaction isn't changing anything; it must either update a flag or modify the `DomainID`. |

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment in issuancecreate. I think it's helpful to explain how you'd malform this specific transaction.

| `temBAD_TRANSFER_FEE` | The transfer fee specified is greater than the maximum allowed value of 50,000. |
| `temDISABLED` | The `MPTokensV1` amendment is disabled. You will also receive this error if you include a `DomainID` field in the transaction, but the `PermissionedDomains` and `SingleAssetVault` amendments are both disabled. |
| `tecINSUFFICIENT_RESERVE` | The account creating the `MPTokenIssuance` ledger entry doesn't have enough XRP to meet the owner reserve. |
| `temMALFORMED` | - A non-zero transfer fee is set, but the `tfMPTCanTransfer` flag is _not_ set.<br>- The `DomainID` points to an invalid permissioned domain; you can also receive this error if you include a `DomainID` without setting the `tfMPTRequireAuth` flag.<br>- The `MPTokenMetadata` field is an invalid length (0 or exceeds 1024 bytes).<br>- The `MaximumAmount` field is 0 or exceeds 9,223,372,036,854,775,807 (2^63-1). |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

temMALFORMED is one of the errors that can occur for any transaction type.

Suggested change
| `temMALFORMED` | - A non-zero transfer fee is set, but the `tfMPTCanTransfer` flag is _not_ set.<br>- The `DomainID` points to an invalid permissioned domain; you can also receive this error if you include a `DomainID` without setting the `tfMPTRequireAuth` flag.<br>- The `MPTokenMetadata` field is an invalid length (0 or exceeds 1024 bytes).<br>- The `MaximumAmount` field is 0 or exceeds 9,223,372,036,854,775,807 (2^63-1). |

Copy link
Collaborator Author

@oeggert oeggert Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, but I think it's helpful to explain what specifically you could be malforming to make it easier for someone to troubleshoot.

Maybe I could preface it with something like: "Besides generally malformed transactions, you can receive this error if ..."

@oeggert oeggert requested a review from mDuo13 November 4, 2025 21:57
@oeggert oeggert mentioned this pull request Nov 4, 2025
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants